package com.office.stacks.pubilsh.mapper;

import java.util.List;
import com.office.stacks.pubilsh.domain.Tasks;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

/**
 * 任务发布Mapper接口
 * 
 * @author 柒月
 * @date 2025-05-22
 */
public interface TasksMapper 
{
    /**
     * 查询任务发布
     *
     * @param id 任务发布主键
     * @return 任务发布
     */
    public Tasks selectTasksById(Long id);

    /**
     * 查询任务发布列表
     *
     * @param tasks       任务发布
     * @param loginUserId 当前的登录用户id
     * @return 任务发布集合
     */
    public List<Tasks> selectTasksList(@Param("tasks") Tasks tasks,@Param("loginUserId") Long loginUserId);

    /**
     * 新增任务发布
     *
     * @param tasks  任务发布
     * @param userId
     * @return 结果
     */
    public int insertTasks(@Param("tasks") Tasks tasks,@Param("userId") Long[] userId);

    /**
     * 修改任务发布
     *
     * @param tasks 任务发布
     * @return 结果
     */
    public int updateTasks(Tasks tasks);

    /**
     * 批量删除任务发布
     *
     * @param ids     需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTasksByIds(@Param("ids") Long[] ids);

    /**
     * 向任务中心插入任务
     *
     * @param tasks 插入任务的对象
     * @return 结果
     */
    public Integer insertTasksCenter(Tasks tasks);

    /**
     * 修改任务表中的文件id为null
     *
     * @param id 文件id
     * @return 结果
     */
    @Update("update tasks set file_id = null where id = #{id}")
    public int updateFileId(Long id);
}
